#ifndef __FINERY_H__
#define __FINERY_H__

#include <string>
#include <iostream>

#include "person.h"

class Finery: public Person
{
protected:
    Person *component = nullptr;
public:
    void Decorate(Person *com) {component = com;}
    void Show() override
    {
        if (component != nullptr) {
            component->Show();
        }
    }
};

class TShirts: public Finery
{
public:
    void Show() override
    {
        std::cout << "大T恤 ";
        Finery::Show();
    }
};

class BigTrouser: public Finery
{
public:
    void Show() override
    {
        std::cout << "垮裤 ";
        Finery::Show();
    }
};

class Sneakers: public Finery
{
public:
    void Show() override
    {
        std::cout << "破球鞋 ";
        Finery::Show();
    }
};

#endif